<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Os1: ORB_SLAM2::MapPoint Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Os1
   &#160;<span id="projectnumber">1</span>
   </div>
   <div id="projectbrief">OrbSlam2 documentado y modificado</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,'Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('class_o_r_b___s_l_a_m2_1_1_map_point.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="class_o_r_b___s_l_a_m2_1_1_map_point-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ORB_SLAM2::MapPoint Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Cada instancia representa un mapa 3D en el sistema de referencia del mapa.  
 <a href="class_o_r_b___s_l_a_m2_1_1_map_point.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_map_point_8h_source.html">MapPoint.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for ORB_SLAM2::MapPoint:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_o_r_b___s_l_a_m2_1_1_map_point__coll__graph.svg" width="1452" height="270"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a37277ee3c7d8657976e749ab920bb13f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a37277ee3c7d8657976e749ab920bb13f">AddObservation</a> (<a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *pKF, size_t idx)</td></tr>
<tr class="memdesc:a37277ee3c7d8657976e749ab920bb13f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cada vez que el punto es observado desde un keyframe, se registra esa observación.  <a href="#a37277ee3c7d8657976e749ab920bb13f">More...</a><br /></td></tr>
<tr class="separator:a37277ee3c7d8657976e749ab920bb13f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4c3dfd8f5f05a4b1888021f1fac3d84"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#ab4c3dfd8f5f05a4b1888021f1fac3d84">ComputeDistinctiveDescriptors</a> ()</td></tr>
<tr class="memdesc:ab4c3dfd8f5f05a4b1888021f1fac3d84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Elige el mejor descriptor entre todos los keyframes que observan el punto.  <a href="#ab4c3dfd8f5f05a4b1888021f1fac3d84">More...</a><br /></td></tr>
<tr class="separator:ab4c3dfd8f5f05a4b1888021f1fac3d84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79e6a93ea0c39329a082f4f69560f1be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a79e6a93ea0c39329a082f4f69560f1be">EraseObservation</a> (<a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *pKF)</td></tr>
<tr class="memdesc:a79e6a93ea0c39329a082f4f69560f1be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Elimina del punto el registro que indicaba que fue observado por ese keyframe.  <a href="#a79e6a93ea0c39329a082f4f69560f1be">More...</a><br /></td></tr>
<tr class="separator:a79e6a93ea0c39329a082f4f69560f1be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f9faa5b4cc513795485dcfb460ea3d0"><td class="memItemLeft" align="right" valign="top">cv::Mat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a8f9faa5b4cc513795485dcfb460ea3d0">GetDescriptor</a> ()</td></tr>
<tr class="memdesc:a8f9faa5b4cc513795485dcfb460ea3d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Devuelve el mejor descriptor del punto 3D.  <a href="#a8f9faa5b4cc513795485dcfb460ea3d0">More...</a><br /></td></tr>
<tr class="separator:a8f9faa5b4cc513795485dcfb460ea3d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d081d56b0f398c52581b3e0eaa1cb15"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a0d081d56b0f398c52581b3e0eaa1cb15">GetFound</a> ()</td></tr>
<tr class="memdesc:a0d081d56b0f398c52581b3e0eaa1cb15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cantidad de veces que el punto fue encontrado.  <a href="#a0d081d56b0f398c52581b3e0eaa1cb15">More...</a><br /></td></tr>
<tr class="separator:a0d081d56b0f398c52581b3e0eaa1cb15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1b7c69a2d9f6bd785d465380844ce10"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#ac1b7c69a2d9f6bd785d465380844ce10">GetFoundRatio</a> ()</td></tr>
<tr class="memdesc:ac1b7c69a2d9f6bd785d465380844ce10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Porcentaje de veces que el punto fue detectado, sobre el total de veces que estuvo en el fustrum.  <a href="#ac1b7c69a2d9f6bd785d465380844ce10">More...</a><br /></td></tr>
<tr class="separator:ac1b7c69a2d9f6bd785d465380844ce10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbe3f2cf7f4d5e4596fa9f7ff0d44470"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#afbe3f2cf7f4d5e4596fa9f7ff0d44470">GetIndexInKeyFrame</a> (<a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *pKF)</td></tr>
<tr class="memdesc:afbe3f2cf7f4d5e4596fa9f7ff0d44470"><td class="mdescLeft">&#160;</td><td class="mdescRight">Índice de este punto en el vector de features del keyframe.  <a href="#afbe3f2cf7f4d5e4596fa9f7ff0d44470">More...</a><br /></td></tr>
<tr class="separator:afbe3f2cf7f4d5e4596fa9f7ff0d44470"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf921da31ee4d522181bb6b8d9149fff"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#abf921da31ee4d522181bb6b8d9149fff">GetMaxDistanceInvariance</a> ()</td></tr>
<tr class="memdesc:abf921da31ee4d522181bb6b8d9149fff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calcula la distancia máxima a la que puede ser observado el punto.  <a href="#abf921da31ee4d522181bb6b8d9149fff">More...</a><br /></td></tr>
<tr class="separator:abf921da31ee4d522181bb6b8d9149fff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac7224845c1d39016c50dcaacc0ebe40"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#aac7224845c1d39016c50dcaacc0ebe40">GetMinDistanceInvariance</a> ()</td></tr>
<tr class="memdesc:aac7224845c1d39016c50dcaacc0ebe40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calcula la distancia mínima a la que puede ser observado el punto.  <a href="#aac7224845c1d39016c50dcaacc0ebe40">More...</a><br /></td></tr>
<tr class="separator:aac7224845c1d39016c50dcaacc0ebe40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0198d242a96476faa52da0ede3c8f10"><td class="memItemLeft" align="right" valign="top">cv::Mat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#af0198d242a96476faa52da0ede3c8f10">GetNormal</a> ()</td></tr>
<tr class="memdesc:af0198d242a96476faa52da0ede3c8f10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector normal promedio de las observaciones.  <a href="#af0198d242a96476faa52da0ede3c8f10">More...</a><br /></td></tr>
<tr class="separator:af0198d242a96476faa52da0ede3c8f10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae91e056d3b79e08a3fadd976888f6b09"><td class="memItemLeft" align="right" valign="top">std::map&lt; <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *, size_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#ae91e056d3b79e08a3fadd976888f6b09">GetObservations</a> ()</td></tr>
<tr class="memdesc:ae91e056d3b79e08a3fadd976888f6b09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Devuelve todas las observaciones del punto.  <a href="#ae91e056d3b79e08a3fadd976888f6b09">More...</a><br /></td></tr>
<tr class="separator:ae91e056d3b79e08a3fadd976888f6b09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98f595f0421fd95e406d1de6f48e05f3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a98f595f0421fd95e406d1de6f48e05f3">GetReferenceKeyFrame</a> ()</td></tr>
<tr class="memdesc:a98f595f0421fd95e406d1de6f48e05f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Devuelve el keyframe de referencia.  <a href="#a98f595f0421fd95e406d1de6f48e05f3">More...</a><br /></td></tr>
<tr class="separator:a98f595f0421fd95e406d1de6f48e05f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8814ed8121bd730c640c620ed623baf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html">MapPoint</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#ad8814ed8121bd730c640c620ed623baf">GetReplaced</a> ()</td></tr>
<tr class="separator:ad8814ed8121bd730c640c620ed623baf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e59b21447d5d889b39ad2fcc1b1db49"><td class="memItemLeft" align="right" valign="top">cv::Mat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a0e59b21447d5d889b39ad2fcc1b1db49">GetWorldPos</a> ()</td></tr>
<tr class="memdesc:a0e59b21447d5d889b39ad2fcc1b1db49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Devuele un Mat con las coordenadas del punto.  <a href="#a0e59b21447d5d889b39ad2fcc1b1db49">More...</a><br /></td></tr>
<tr class="separator:a0e59b21447d5d889b39ad2fcc1b1db49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa097cd8cf993a54e999f297e05729392"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#aa097cd8cf993a54e999f297e05729392">IncreaseFound</a> (int n=1)</td></tr>
<tr class="memdesc:aa097cd8cf993a54e999f297e05729392"><td class="mdescLeft">&#160;</td><td class="mdescRight">Incrementa el contador de cantidad de veces que fue hallado el punto.  <a href="#aa097cd8cf993a54e999f297e05729392">More...</a><br /></td></tr>
<tr class="separator:aa097cd8cf993a54e999f297e05729392"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a234f5bd6bc19a9ea55fad0c9e6db5f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a0a234f5bd6bc19a9ea55fad0c9e6db5f">IncreaseVisible</a> (int n=1)</td></tr>
<tr class="memdesc:a0a234f5bd6bc19a9ea55fad0c9e6db5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Incrementa el contador de cantidad de veces que fue observado el punto.  <a href="#a0a234f5bd6bc19a9ea55fad0c9e6db5f">More...</a><br /></td></tr>
<tr class="separator:a0a234f5bd6bc19a9ea55fad0c9e6db5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46bb6b57cd914c9ebad30007f3af469a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a46bb6b57cd914c9ebad30007f3af469a">isBad</a> ()</td></tr>
<tr class="memdesc:a46bb6b57cd914c9ebad30007f3af469a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informa el flag mBad.  <a href="#a46bb6b57cd914c9ebad30007f3af469a">More...</a><br /></td></tr>
<tr class="separator:a46bb6b57cd914c9ebad30007f3af469a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a8c48a885598ba4da3b188791dfd009"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a7a8c48a885598ba4da3b188791dfd009">IsInKeyFrame</a> (<a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *pKF)</td></tr>
<tr class="memdesc:a7a8c48a885598ba4da3b188791dfd009"><td class="mdescLeft">&#160;</td><td class="mdescRight">Busca si este punto es observado por el keyframe argumento.  <a href="#a7a8c48a885598ba4da3b188791dfd009">More...</a><br /></td></tr>
<tr class="separator:a7a8c48a885598ba4da3b188791dfd009"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad14dd804346e01311e0676959c879555"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#ad14dd804346e01311e0676959c879555">MapPoint</a> (const cv::Mat &amp;Pos, int FirstKFid, int FirstFrame, <a class="el" href="class_o_r_b___s_l_a_m2_1_1_map.html">Map</a> *pMap)</td></tr>
<tr class="memdesc:ad14dd804346e01311e0676959c879555"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor declarado pero no implementado.  <a href="#ad14dd804346e01311e0676959c879555">More...</a><br /></td></tr>
<tr class="separator:ad14dd804346e01311e0676959c879555"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5b0a868a291c502f2632b0d1694872d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#ae5b0a868a291c502f2632b0d1694872d">MapPoint</a> (const cv::Mat &amp;Pos, <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *pRefKF, <a class="el" href="class_o_r_b___s_l_a_m2_1_1_map.html">Map</a> *pMap, cv::Vec3b <a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a70f6cf86b42dfb6f4968839b977cd77f">rgb</a>=0)</td></tr>
<tr class="memdesc:ae5b0a868a291c502f2632b0d1694872d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor que toma los valores argumentos.  <a href="#ae5b0a868a291c502f2632b0d1694872d">More...</a><br /></td></tr>
<tr class="separator:ae5b0a868a291c502f2632b0d1694872d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fbc2a95f49eb6facdc5d5fa35de3287"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a7fbc2a95f49eb6facdc5d5fa35de3287">Observations</a> ()</td></tr>
<tr class="memdesc:a7fbc2a95f49eb6facdc5d5fa35de3287"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informa la cantidad de observaciones que registra el punto.  <a href="#a7fbc2a95f49eb6facdc5d5fa35de3287">More...</a><br /></td></tr>
<tr class="separator:a7fbc2a95f49eb6facdc5d5fa35de3287"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1aa077560ef0cf2dee409f2a574370b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#aa1aa077560ef0cf2dee409f2a574370b">PredictScale</a> (const float &amp;currentDist, const float &amp;logScaleFactor)</td></tr>
<tr class="memdesc:aa1aa077560ef0cf2dee409f2a574370b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Predice la escala (el nivel de la pirámide) en que se encontrará el punto, a partir de la distancia de observación.  <a href="#aa1aa077560ef0cf2dee409f2a574370b">More...</a><br /></td></tr>
<tr class="separator:aa1aa077560ef0cf2dee409f2a574370b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f2e205afcfae3dc70196bcd29194440"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a8f2e205afcfae3dc70196bcd29194440">Replace</a> (<a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html">MapPoint</a> *pMP)</td></tr>
<tr class="memdesc:a8f2e205afcfae3dc70196bcd29194440"><td class="mdescLeft">&#160;</td><td class="mdescRight">Toma las propiedades del punto argumento.  <a href="#a8f2e205afcfae3dc70196bcd29194440">More...</a><br /></td></tr>
<tr class="separator:a8f2e205afcfae3dc70196bcd29194440"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ed2a66b528165d6c39cb6f84f684308"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a7ed2a66b528165d6c39cb6f84f684308">SetBadFlag</a> ()</td></tr>
<tr class="memdesc:a7ed2a66b528165d6c39cb6f84f684308"><td class="mdescLeft">&#160;</td><td class="mdescRight">Elimina el punto, marcándolo como malo.  <a href="#a7ed2a66b528165d6c39cb6f84f684308">More...</a><br /></td></tr>
<tr class="separator:a7ed2a66b528165d6c39cb6f84f684308"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a569e91b415067d4484fe7b71f33451cf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a569e91b415067d4484fe7b71f33451cf">SetReferenceKeyFrame</a> (<a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *pRefKF)</td></tr>
<tr class="memdesc:a569e91b415067d4484fe7b71f33451cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Establece el keyframe de referencia.  <a href="#a569e91b415067d4484fe7b71f33451cf">More...</a><br /></td></tr>
<tr class="separator:a569e91b415067d4484fe7b71f33451cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad65e6322e9d06314db235ff4d072509f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#ad65e6322e9d06314db235ff4d072509f">SetWorldPos</a> (const cv::Mat &amp;Pos)</td></tr>
<tr class="memdesc:ad65e6322e9d06314db235ff4d072509f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Asigna al punto las coordenadas 3D argumento.  <a href="#ad65e6322e9d06314db235ff4d072509f">More...</a><br /></td></tr>
<tr class="separator:ad65e6322e9d06314db235ff4d072509f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5b8e4ec6a7737860af57058bdd16124"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#ac5b8e4ec6a7737860af57058bdd16124">UpdateNormalAndDepth</a> ()</td></tr>
<tr class="memdesc:ac5b8e4ec6a7737860af57058bdd16124"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recalcula el vector normal y la profundidad de visibilidad a partir de las observaciones.  <a href="#ac5b8e4ec6a7737860af57058bdd16124">More...</a><br /></td></tr>
<tr class="separator:ac5b8e4ec6a7737860af57058bdd16124"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a03c1f367dd43f384bcd066e9da65bb88"><td class="memItemLeft" align="right" valign="top">long int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a03c1f367dd43f384bcd066e9da65bb88">mnFirstFrame</a></td></tr>
<tr class="memdesc:a03c1f367dd43f384bcd066e9da65bb88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Id del primer frame que observa este punto.  <a href="#a03c1f367dd43f384bcd066e9da65bb88">More...</a><br /></td></tr>
<tr class="separator:a03c1f367dd43f384bcd066e9da65bb88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae20735198e68c7ed4c0f0956322c8f7a"><td class="memItemLeft" align="right" valign="top">long int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#ae20735198e68c7ed4c0f0956322c8f7a">mnFirstKFid</a></td></tr>
<tr class="memdesc:ae20735198e68c7ed4c0f0956322c8f7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Id del primer keyframe que observa este punto, cuyo valor es asignado en el constructor y nunca modificado.  <a href="#ae20735198e68c7ed4c0f0956322c8f7a">More...</a><br /></td></tr>
<tr class="separator:ae20735198e68c7ed4c0f0956322c8f7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afba2eb4d8400a0c822ee991ba445d9be"><td class="memItemLeft" align="right" valign="top">long unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#afba2eb4d8400a0c822ee991ba445d9be">mnId</a></td></tr>
<tr class="memdesc:afba2eb4d8400a0c822ee991ba445d9be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Identificador del punto.  <a href="#afba2eb4d8400a0c822ee991ba445d9be">More...</a><br /></td></tr>
<tr class="separator:afba2eb4d8400a0c822ee991ba445d9be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2653a4c69121627fcc5ae812b1809a28"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a2653a4c69121627fcc5ae812b1809a28">nObs</a></td></tr>
<tr class="memdesc:a2653a4c69121627fcc5ae812b1809a28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cantidad de veces que fue observado.  <a href="#a2653a4c69121627fcc5ae812b1809a28">More...</a><br /></td></tr>
<tr class="separator:a2653a4c69121627fcc5ae812b1809a28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70f6cf86b42dfb6f4968839b977cd77f"><td class="memItemLeft" align="right" valign="top">cv::Vec3b&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a70f6cf86b42dfb6f4968839b977cd77f">rgb</a> = 0</td></tr>
<tr class="separator:a70f6cf86b42dfb6f4968839b977cd77f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a7d735552c42630c00bca4c2094fbbbf3"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a7d735552c42630c00bca4c2094fbbbf3">mTrackProjX</a></td></tr>
<tr class="memdesc:a7d735552c42630c00bca4c2094fbbbf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Variables efímeras usadas por <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html" title="Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). ">Tracking</a>.  <a href="#a7d735552c42630c00bca4c2094fbbbf3">More...</a><br /></td></tr>
<tr class="separator:a7d735552c42630c00bca4c2094fbbbf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ab59610931a5c2e14f502e8233571e4"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a5ab59610931a5c2e14f502e8233571e4">mTrackProjY</a></td></tr>
<tr class="separator:a5ab59610931a5c2e14f502e8233571e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0187350fa3fddd0bf89ccf354acb4766"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a0187350fa3fddd0bf89ccf354acb4766">mbTrackInView</a></td></tr>
<tr class="separator:a0187350fa3fddd0bf89ccf354acb4766"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac515bf003cea5f99737d13475c46816"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#aac515bf003cea5f99737d13475c46816">mnTrackScaleLevel</a></td></tr>
<tr class="separator:aac515bf003cea5f99737d13475c46816"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a728107bc670ba47d79bad5ba288256d6"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a728107bc670ba47d79bad5ba288256d6">mTrackViewCos</a></td></tr>
<tr class="memdesc:a728107bc670ba47d79bad5ba288256d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Coseno de triangulación.  <a href="#a728107bc670ba47d79bad5ba288256d6">More...</a><br /></td></tr>
<tr class="separator:a728107bc670ba47d79bad5ba288256d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19152183cfddc71b63650175def6aec7"><td class="memItemLeft" align="right" valign="top">long unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a19152183cfddc71b63650175def6aec7">mnTrackReferenceForFrame</a></td></tr>
<tr class="memdesc:a19152183cfddc71b63650175def6aec7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Variable utilizada en <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a25843575116bf18c065d6cc7645f5b26" title="Rehace la lista de puntos del mapa local. ">Tracking::UpdateLocalPoints</a>.  <a href="#a19152183cfddc71b63650175def6aec7">More...</a><br /></td></tr>
<tr class="separator:a19152183cfddc71b63650175def6aec7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea3a63ce27fc39e536a6ceef7c1f3473"><td class="memItemLeft" align="right" valign="top">long unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#aea3a63ce27fc39e536a6ceef7c1f3473">mnLastFrameSeen</a></td></tr>
<tr class="memdesc:aea3a63ce27fc39e536a6ceef7c1f3473"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registra el id del último frame que observó el punto.  <a href="#aea3a63ce27fc39e536a6ceef7c1f3473">More...</a><br /></td></tr>
<tr class="separator:aea3a63ce27fc39e536a6ceef7c1f3473"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:ad4da26d02aa54a3e0be6a09e90fa39ec"><td class="memItemLeft" align="right" valign="top">long unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#ad4da26d02aa54a3e0be6a09e90fa39ec">mnBALocalForKF</a></td></tr>
<tr class="memdesc:ad4da26d02aa54a3e0be6a09e90fa39ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Variables efímeras usadas por <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a>.  <a href="#ad4da26d02aa54a3e0be6a09e90fa39ec">More...</a><br /></td></tr>
<tr class="separator:ad4da26d02aa54a3e0be6a09e90fa39ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedba463c6440c2b448e9ec21acd58b9a"><td class="memItemLeft" align="right" valign="top">long unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#aedba463c6440c2b448e9ec21acd58b9a">mnFuseCandidateForKF</a></td></tr>
<tr class="separator:aedba463c6440c2b448e9ec21acd58b9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a44172716cac5a56004a60d165de8cfa2"><td class="memItemLeft" align="right" valign="top">long unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a44172716cac5a56004a60d165de8cfa2">mnLoopPointForKF</a></td></tr>
<tr class="memdesc:a44172716cac5a56004a60d165de8cfa2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Variables efímeras usadas por <a class="el" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html" title="Cierre de bucles. ">LoopClosing</a>.  <a href="#a44172716cac5a56004a60d165de8cfa2">More...</a><br /></td></tr>
<tr class="separator:a44172716cac5a56004a60d165de8cfa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86626462be01ad9a133dca0f5b49e688"><td class="memItemLeft" align="right" valign="top">long unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a86626462be01ad9a133dca0f5b49e688">mnCorrectedByKF</a></td></tr>
<tr class="memdesc:a86626462be01ad9a133dca0f5b49e688"><td class="mdescLeft">&#160;</td><td class="mdescRight">Id del último keyframe que corrigió la posición del punto.  <a href="#a86626462be01ad9a133dca0f5b49e688">More...</a><br /></td></tr>
<tr class="separator:a86626462be01ad9a133dca0f5b49e688"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade5858af14ed7924d48dbf191ea5448c"><td class="memItemLeft" align="right" valign="top">long unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#ade5858af14ed7924d48dbf191ea5448c">mnCorrectedReference</a></td></tr>
<tr class="separator:ade5858af14ed7924d48dbf191ea5448c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2669d92452bb1347a6a09700e369f049"><td class="memItemLeft" align="right" valign="top">cv::Mat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a2669d92452bb1347a6a09700e369f049">mPosGBA</a></td></tr>
<tr class="separator:a2669d92452bb1347a6a09700e369f049"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcef580d7b3562ea9025ea1dc2141b92"><td class="memItemLeft" align="right" valign="top">long unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#abcef580d7b3562ea9025ea1dc2141b92">mnBAGlobalForKF</a></td></tr>
<tr class="memdesc:abcef580d7b3562ea9025ea1dc2141b92"><td class="mdescLeft">&#160;</td><td class="mdescRight">RunBundleAdjustment lo asigna y luego lo consume.  <a href="#abcef580d7b3562ea9025ea1dc2141b92">More...</a><br /></td></tr>
<tr class="separator:abcef580d7b3562ea9025ea1dc2141b92"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a58d0ed9067593833efa652ea671ebf62"><td class="memItemLeft" align="right" valign="top">static std::mutex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a58d0ed9067593833efa652ea671ebf62">mGlobalMutex</a></td></tr>
<tr class="separator:a58d0ed9067593833efa652ea671ebf62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa79702928d566db4fcd7716249bd96a2"><td class="memItemLeft" align="right" valign="top">static long unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#aa79702928d566db4fcd7716249bd96a2">nNextId</a> =0</td></tr>
<tr class="memdesc:aa79702928d566db4fcd7716249bd96a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Identificador para el próximo nuevo punto.  <a href="#aa79702928d566db4fcd7716249bd96a2">More...</a><br /></td></tr>
<tr class="separator:aa79702928d566db4fcd7716249bd96a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a3d9788e9d5c47d86b0f614cde91e3a4f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a3d9788e9d5c47d86b0f614cde91e3a4f">MapPoint</a> ()</td></tr>
<tr class="memdesc:a3d9788e9d5c47d86b0f614cde91e3a4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serialización agregada para guardar y cargar puntos de mapa.  <a href="#a3d9788e9d5c47d86b0f614cde91e3a4f">More...</a><br /></td></tr>
<tr class="separator:a3d9788e9d5c47d86b0f614cde91e3a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef6f5c53ed3c845276473bda2437ad03"><td class="memTemplParams" colspan="2">template&lt;class Archivo &gt; </td></tr>
<tr class="memitem:aef6f5c53ed3c845276473bda2437ad03"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#aef6f5c53ed3c845276473bda2437ad03">serialize</a> (Archivo &amp;, const unsigned int)</td></tr>
<tr class="memdesc:aef6f5c53ed3c845276473bda2437ad03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serializador de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html" title="Cada instancia representa un mapa 3D en el sistema de referencia del mapa. ">MapPoint</a> Se invoca al serializar <a class="el" href="class_o_r_b___s_l_a_m2_1_1_map.html#a2864c4d90418f02768c85d0255d1eca7" title="Puntos del mapa. ">Map::mspMapPoints</a> y <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html#a777aab9cb7c1fd8e83f143e77a9f1b03" title="Puntos del mapa asociado a los puntos singulares. ">KeyFrame::mvpMapPoints</a>, cuyos mapPoints nunca tienen mbBad true.  <a href="#aef6f5c53ed3c845276473bda2437ad03">More...</a><br /></td></tr>
<tr class="separator:aef6f5c53ed3c845276473bda2437ad03"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:aa8f2fc3c4b67c04e97162a5084e1dada"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#aa8f2fc3c4b67c04e97162a5084e1dada">mbBad</a></td></tr>
<tr class="memdesc:aa8f2fc3c4b67c04e97162a5084e1dada"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag de borrado.  <a href="#aa8f2fc3c4b67c04e97162a5084e1dada">More...</a><br /></td></tr>
<tr class="separator:aa8f2fc3c4b67c04e97162a5084e1dada"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2a05b8ddc806ecc6939f42d13828876"><td class="memItemLeft" align="right" valign="top">cv::Mat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#ac2a05b8ddc806ecc6939f42d13828876">mDescriptor</a></td></tr>
<tr class="memdesc:ac2a05b8ddc806ecc6939f42d13828876"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mejor descriptor del punto.  <a href="#ac2a05b8ddc806ecc6939f42d13828876">More...</a><br /></td></tr>
<tr class="separator:ac2a05b8ddc806ecc6939f42d13828876"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc04bae1b7819dd158a572de56074f63"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#afc04bae1b7819dd158a572de56074f63">mfMaxDistance</a></td></tr>
<tr class="memdesc:afc04bae1b7819dd158a572de56074f63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Distancia máxima en la que puede ser observado y reconocido por su descriptor.  <a href="#afc04bae1b7819dd158a572de56074f63">More...</a><br /></td></tr>
<tr class="separator:afc04bae1b7819dd158a572de56074f63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac179383327d65067da6febe55cbfc32a"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#ac179383327d65067da6febe55cbfc32a">mfMinDistance</a></td></tr>
<tr class="memdesc:ac179383327d65067da6febe55cbfc32a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Distancia mínima en la que puede ser observado y reconocido por su descriptor.  <a href="#ac179383327d65067da6febe55cbfc32a">More...</a><br /></td></tr>
<tr class="separator:ac179383327d65067da6febe55cbfc32a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ab20d400977581ac45a109f5544ffda"><td class="memItemLeft" align="right" valign="top">std::mutex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a3ab20d400977581ac45a109f5544ffda">mMutexFeatures</a></td></tr>
<tr class="separator:a3ab20d400977581ac45a109f5544ffda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a592b97bed3453c0a599336fa848a8cef"><td class="memItemLeft" align="right" valign="top">std::mutex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a592b97bed3453c0a599336fa848a8cef">mMutexPos</a></td></tr>
<tr class="separator:a592b97bed3453c0a599336fa848a8cef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1defea85441b8063ef9ebb47c9959289"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a1defea85441b8063ef9ebb47c9959289">mnFound</a></td></tr>
<tr class="memdesc:a1defea85441b8063ef9ebb47c9959289"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cantidad de veces que fue visible, y pudo ser detectado.  <a href="#a1defea85441b8063ef9ebb47c9959289">More...</a><br /></td></tr>
<tr class="separator:a1defea85441b8063ef9ebb47c9959289"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba0cff72e2182ff72d32edd77dc7832d"><td class="memItemLeft" align="right" valign="top">cv::Mat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#aba0cff72e2182ff72d32edd77dc7832d">mNormalVector</a></td></tr>
<tr class="memdesc:aba0cff72e2182ff72d32edd77dc7832d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector normal, computado como el promedio de las direcciones de todas las vistas del punto.  <a href="#aba0cff72e2182ff72d32edd77dc7832d">More...</a><br /></td></tr>
<tr class="separator:aba0cff72e2182ff72d32edd77dc7832d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadb2c83e36dc01e47983f57e831bac7b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#aadb2c83e36dc01e47983f57e831bac7b">mnVisible</a></td></tr>
<tr class="memdesc:aadb2c83e36dc01e47983f57e831bac7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cantidad de veces que el punto fue captado por la cámara, independientemente de si se lo detectó.  <a href="#aadb2c83e36dc01e47983f57e831bac7b">More...</a><br /></td></tr>
<tr class="separator:aadb2c83e36dc01e47983f57e831bac7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a189bea541f860af75ceb60300b59d8e3"><td class="memItemLeft" align="right" valign="top">std::map&lt; <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *, size_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a189bea541f860af75ceb60300b59d8e3">mObservations</a></td></tr>
<tr class="memdesc:a189bea541f860af75ceb60300b59d8e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Keyframes que observan este punto, y sus índices.  <a href="#a189bea541f860af75ceb60300b59d8e3">More...</a><br /></td></tr>
<tr class="separator:a189bea541f860af75ceb60300b59d8e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad9ad02a540966d12b75460238290d90"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map.html">Map</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#aad9ad02a540966d12b75460238290d90">mpMap</a></td></tr>
<tr class="memdesc:aad9ad02a540966d12b75460238290d90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mapa al que pertenece.  <a href="#aad9ad02a540966d12b75460238290d90">More...</a><br /></td></tr>
<tr class="separator:aad9ad02a540966d12b75460238290d90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27cc4fee44b1ae77b24a8c766c617058"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a27cc4fee44b1ae77b24a8c766c617058">mpRefKF</a></td></tr>
<tr class="memdesc:a27cc4fee44b1ae77b24a8c766c617058"><td class="mdescLeft">&#160;</td><td class="mdescRight">Keyframe de referencia.  <a href="#a27cc4fee44b1ae77b24a8c766c617058">More...</a><br /></td></tr>
<tr class="separator:a27cc4fee44b1ae77b24a8c766c617058"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf1fe1c8a41919e1890b70baa18bd2fb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html">MapPoint</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#abf1fe1c8a41919e1890b70baa18bd2fb">mpReplaced</a></td></tr>
<tr class="separator:abf1fe1c8a41919e1890b70baa18bd2fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39741adada8dcd302afbf45ec2e72af0"><td class="memItemLeft" align="right" valign="top">cv::Mat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a39741adada8dcd302afbf45ec2e72af0">mWorldPos</a></td></tr>
<tr class="memdesc:a39741adada8dcd302afbf45ec2e72af0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Posición en coordenadas absolutas del mapa global.  <a href="#a39741adada8dcd302afbf45ec2e72af0">More...</a><br /></td></tr>
<tr class="separator:a39741adada8dcd302afbf45ec2e72af0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:ac98d07dd8f7b70e16ccb9a01abf56b9c"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#ac98d07dd8f7b70e16ccb9a01abf56b9c">boost::serialization::access</a></td></tr>
<tr class="separator:ac98d07dd8f7b70e16ccb9a01abf56b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3f5346f31d572dd2ab4fcd658de5bc4"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#ad3f5346f31d572dd2ab4fcd658de5bc4">Serializer</a></td></tr>
<tr class="separator:ad3f5346f31d572dd2ab4fcd658de5bc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Cada instancia representa un mapa 3D en el sistema de referencia del mapa. </p>
<p><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html" title="Cada instancia representa un mapa 3D en el sistema de referencia del mapa. ">MapPoint</a> es mucho más que las coordenadas del punto 3D. Contiene, por ejemplo, la lista de keyframes que lo observan. Implementa un ABC (alta, baja, consulta) de "observaciones" (keyframes), y otro de descriptores asociados. Incluso elije el mejor descriptor, el más cercano al resto de sus descriptores. Entre otras propiedades, un <a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html" title="Cada instancia representa un mapa 3D en el sistema de referencia del mapa. ">MapPoint</a> tiene una normal que intenta indicar desde qué lado es observable. También tiene un rango de distancias en el que es observable. Desde muy cerca o muy lejos los descriptores no machean. Este rango permite reducir el ámbito de macheo para aumentar la performance. El keyframe de referencia es el informado en el constructor, presumiblemente el primer keyframe que observa el punto. Si se elimina el keyframe de referencia, se adopta el siguiente de la lista. El punto lleva la cuenta de la cantidad de veces que "debería haber sido observado" según la pose de la cámara, de la cantidad de veces que efectivamente fue hallado (su descriptor fue macheado).</p>
<p>Hay tres conjuntos de propiedades efímeras para uso específico de tracking, loop closing y local mapping. Estas propiedades guardan valores asociados al punto y de corta duración, válidas a lo largo de un procedimiento. No son multihilo, los procedimientos comienza asginando algún valor que consumen más adelante en el mismo procedimiento, y carece de sentido al finalizar. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ad14dd804346e01311e0676959c879555"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ORB_SLAM2::MapPoint::MapPoint </td>
          <td>(</td>
          <td class="paramtype">const cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>Pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>FirstKFid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>FirstFrame</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map.html">Map</a> *&#160;</td>
          <td class="paramname"><em>pMap</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor declarado pero no implementado. </p>

</div>
</div>
<a id="ae5b0a868a291c502f2632b0d1694872d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ORB_SLAM2::MapPoint::MapPoint </td>
          <td>(</td>
          <td class="paramtype">const cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>Pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *&#160;</td>
          <td class="paramname"><em>pRefKF</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map.html">Map</a> *&#160;</td>
          <td class="paramname"><em>pMap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cv::Vec3b&#160;</td>
          <td class="paramname"><em>rgb</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor que toma los valores argumentos. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Pos</td><td>Posición en el mapa. </td></tr>
    <tr><td class="paramname">pRefKF</td><td>Keyframe de referencia. </td></tr>
    <tr><td class="paramname">pMap</td><td>Mapa al que pertenece el punto. Hay un único mapa en ORB-SLAM. </td></tr>
    <tr><td class="paramname">rgb_</td><td>Color del punto. Opcional, negro si no se proporciona.</td></tr>
  </table>
  </dd>
</dl>
<p>Este constructor se invoca sólo desde <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#ac06b513357429d9eff89e29d2ae58d6c" title="El ciclo de mapeo local invoca periódicamente este método, que busca macheos candidatos para su trian...">LocalMapping::CreateNewMapPoints</a> para el agregado de puntos del SLAM.</p>
<p>Único constructor utilizado. </p>

</div>
</div>
<a id="a3d9788e9d5c47d86b0f614cde91e3a4f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">ORB_SLAM2::MapPoint::MapPoint </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Serialización agregada para guardar y cargar puntos de mapa. </p>
<p>Constructor por defecto de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html" title="Cada instancia representa un mapa 3D en el sistema de referencia del mapa. ">MapPoint</a> para el serializador.</p>
<p>Se encarga de inicializar las variables const, para que el compilador no chille. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a37277ee3c7d8657976e749ab920bb13f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::MapPoint::AddObservation </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *&#160;</td>
          <td class="paramname"><em>pKF</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>idx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Cada vez que el punto es observado desde un keyframe, se registra esa observación. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pKF</td><td>Keyframe que observa el punto. </td></tr>
    <tr><td class="paramname">idx</td><td>índice del keyframe que observa el punto. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ab4c3dfd8f5f05a4b1888021f1fac3d84"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::MapPoint::ComputeDistinctiveDescriptors </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Elige el mejor descriptor entre todos los keyframes que observan el punto. </p>
<p>Recupera todos los descriptores, computa las distancias entre todas las combinaciones, y elige el descriptor con menor distancia promedio al resto. Guarda el valor en mDescriptor. </p>

</div>
</div>
<a id="a79e6a93ea0c39329a082f4f69560f1be"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::MapPoint::EraseObservation </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *&#160;</td>
          <td class="paramname"><em>pKF</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Elimina del punto el registro que indicaba que fue observado por ese keyframe. </p>
<p>Elimina el keyframe del mapa mObservations y decrementa la cantidad de observaciones del punto. Si el eliminado es el keyframe de referencia, elige otro. Si el punto queda observado por sólo 2 keyframes, lo elimina con SetBadFlag.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pKF</td><td>Keyframe a eliminar.</td></tr>
  </table>
  </dd>
</dl>
<p>Si pKF no observa el punto, no hace nada. </p>

</div>
</div>
<a id="a8f9faa5b4cc513795485dcfb460ea3d0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::Mat ORB_SLAM2::MapPoint::GetDescriptor </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Devuelve el mejor descriptor del punto 3D. </p>
<p>Un punto 3D tiene varias observaciones, y por lo tanto varios descriptores. <a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#ab4c3dfd8f5f05a4b1888021f1fac3d84" title="Elige el mejor descriptor entre todos los keyframes que observan el punto. ">MapPoint::ComputeDistinctiveDescriptors</a> calcula el que mejor lo representa.</p>
<dl class="section return"><dt>Returns</dt><dd>Descriptor del punto 3D. </dd></dl>

</div>
</div>
<a id="a0d081d56b0f398c52581b3e0eaa1cb15"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ORB_SLAM2::MapPoint::GetFound </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Cantidad de veces que el punto fue encontrado. </p>

</div>
</div>
<a id="ac1b7c69a2d9f6bd785d465380844ce10"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float ORB_SLAM2::MapPoint::GetFoundRatio </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Porcentaje de veces que el punto fue detectado, sobre el total de veces que estuvo en el fustrum. </p>

</div>
</div>
<a id="afbe3f2cf7f4d5e4596fa9f7ff0d44470"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ORB_SLAM2::MapPoint::GetIndexInKeyFrame </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *&#160;</td>
          <td class="paramname"><em>pKF</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Índice de este punto en el vector de features del keyframe. </p>
<p>-1 si el keyframe no observa este punto.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pKF</td><td>Keyframe a testear, para ver si observa o no el punto.</td></tr>
  </table>
  </dd>
</dl>
<p>Devuelve el índice idx, de modo que este punto es pKF-&gt;mvpMapPoints[idx] </p>

</div>
</div>
<a id="abf921da31ee4d522181bb6b8d9149fff"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float ORB_SLAM2::MapPoint::GetMaxDistanceInvariance </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Calcula la distancia máxima a la que puede ser observado el punto. </p>
<p>Se calcula como el 127% de la mayor distancia en que fue efectivamente observado.</p>
<dl class="section return"><dt>Returns</dt><dd>Distancia máxima de observación. </dd></dl>

</div>
</div>
<a id="aac7224845c1d39016c50dcaacc0ebe40"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float ORB_SLAM2::MapPoint::GetMinDistanceInvariance </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Calcula la distancia mínima a la que puede ser observado el punto. </p>
<p>Se calcula como 80% de la menor distancia en que fue efectivamente observado.</p>
<dl class="section return"><dt>Returns</dt><dd>Distancia mínima de observación. </dd></dl>

</div>
</div>
<a id="af0198d242a96476faa52da0ede3c8f10"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::Mat ORB_SLAM2::MapPoint::GetNormal </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Vector normal promedio de las observaciones. </p>
<p>Los puntos suelen estar en una superficie, y sólo pueden ser observados de un lado. Cada punto aproxima su vector normal como promedio de las observaciones.</p>
<dl class="section return"><dt>Returns</dt><dd>Vector normal del punto. </dd></dl>

</div>
</div>
<a id="ae91e056d3b79e08a3fadd976888f6b09"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">map&lt; <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *, size_t &gt; ORB_SLAM2::MapPoint::GetObservations </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Devuelve todas las observaciones del punto. </p>
<p>Cada observación consiste de un mapa id a keyframe.</p>
<p>Devuelve <a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html#a189bea541f860af75ceb60300b59d8e3" title="Keyframes que observan este punto, y sus índices. ">MapPoint::mObservations</a> </p>

</div>
</div>
<a id="a98f595f0421fd95e406d1de6f48e05f3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> * ORB_SLAM2::MapPoint::GetReferenceKeyFrame </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Devuelve el keyframe de referencia. </p>
<dl class="section return"><dt>Returns</dt><dd>Keyframe de referencia. </dd></dl>

</div>
</div>
<a id="ad8814ed8121bd730c640c620ed623baf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html">MapPoint</a> * ORB_SLAM2::MapPoint::GetReplaced </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a0e59b21447d5d889b39ad2fcc1b1db49"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::Mat ORB_SLAM2::MapPoint::GetWorldPos </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Devuele un Mat con las coordenadas del punto. </p>
<dl class="section return"><dt>Returns</dt><dd>Vector de posición del punto. </dd></dl>

</div>
</div>
<a id="aa097cd8cf993a54e999f297e05729392"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::MapPoint::IncreaseFound </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n</em> = <code>1</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Incrementa el contador de cantidad de veces que fue hallado el punto. </p>

</div>
</div>
<a id="a0a234f5bd6bc19a9ea55fad0c9e6db5f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::MapPoint::IncreaseVisible </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n</em> = <code>1</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Incrementa el contador de cantidad de veces que fue observado el punto. </p>

</div>
</div>
<a id="a46bb6b57cd914c9ebad30007f3af469a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::MapPoint::isBad </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Informa el flag mBad. </p>
<p>Todos los iteradores consultan este flag antes de considerar el punto. Sobre un vector, preguntan primero si el puntero es nulo, y enseguida si isBad. </p>

</div>
</div>
<a id="a7a8c48a885598ba4da3b188791dfd009"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::MapPoint::IsInKeyFrame </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *&#160;</td>
          <td class="paramname"><em>pKF</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Busca si este punto es observado por el keyframe argumento. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pKF</td><td>Keyframe donde buscar el punto. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true si encontró el punto. </dd></dl>

</div>
</div>
<a id="a7fbc2a95f49eb6facdc5d5fa35de3287"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ORB_SLAM2::MapPoint::Observations </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Informa la cantidad de observaciones que registra el punto. </p>

</div>
</div>
<a id="aa1aa077560ef0cf2dee409f2a574370b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ORB_SLAM2::MapPoint::PredictScale </td>
          <td>(</td>
          <td class="paramtype">const float &amp;&#160;</td>
          <td class="paramname"><em>currentDist</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float &amp;&#160;</td>
          <td class="paramname"><em>logScaleFactor</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Predice la escala (el nivel de la pirámide) en que se encontrará el punto, a partir de la distancia de observación. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">currentDist</td><td>Distancia actual. </td></tr>
    <tr><td class="paramname">logScaleFactor</td><td>Factor de escala. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Nivel de la pirámide. </dd></dl>

</div>
</div>
<a id="a8f2e205afcfae3dc70196bcd29194440"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::MapPoint::Replace </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html">MapPoint</a> *&#160;</td>
          <td class="paramname"><em>pMP</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Toma las propiedades del punto argumento. </p>

</div>
</div>
<a id="aef6f5c53ed3c845276473bda2437ad03"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Archivo &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::MapPoint::serialize </td>
          <td>(</td>
          <td class="paramtype">Archivo &amp;&#160;</td>
          <td class="paramname"><em>ar</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>version</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Serializador de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html" title="Cada instancia representa un mapa 3D en el sistema de referencia del mapa. ">MapPoint</a> Se invoca al serializar <a class="el" href="class_o_r_b___s_l_a_m2_1_1_map.html#a2864c4d90418f02768c85d0255d1eca7" title="Puntos del mapa. ">Map::mspMapPoints</a> y <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html#a777aab9cb7c1fd8e83f143e77a9f1b03" title="Puntos del mapa asociado a los puntos singulares. ">KeyFrame::mvpMapPoints</a>, cuyos mapPoints nunca tienen mbBad true. </p>
<p>La serialización de <a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html" title="Cada instancia representa un mapa 3D en el sistema de referencia del mapa. ">MapPoint</a> evita punteros para asegurar el guardado consecutivo de todos los puntos antes de proceder con los KeyFrames. Esto evita problemas no identificados con <a class="el" href="namespaceboost_1_1serialization.html">boost::serialization</a>, que cuelgan la aplicación al guardar. </p>

</div>
</div>
<a id="a7ed2a66b528165d6c39cb6f84f684308"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::MapPoint::SetBadFlag </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Elimina el punto, marcándolo como malo. </p>
<p>Lo retira del mapa. No destruye el punto en sí, para evitar conflictos entre hilos, pero debería. Este flag es efímero, aunque por algún error algunos puntos marcados como malos y retirados del mapa perduran en otros contenedores.</p>
<p>Con mutex marca mbBad y elimina el mapa mObservations. Fuera del mutex recorre los keyframes de mObservations para eliminar el punto de sus macheos. Finalmente elimina el punto del registro del mapa. </p>

</div>
</div>
<a id="a569e91b415067d4484fe7b71f33451cf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::MapPoint::SetReferenceKeyFrame </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *&#160;</td>
          <td class="paramname"><em>pRefKF</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Establece el keyframe de referencia. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pRefKF</td><td>Keyframe de referencia. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ad65e6322e9d06314db235ff4d072509f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::MapPoint::SetWorldPos </td>
          <td>(</td>
          <td class="paramtype">const cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>Pos</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Asigna al punto las coordenadas 3D argumento. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Pos</td><td>Vector con la posición que se copiará al punto. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ac5b8e4ec6a7737860af57058bdd16124"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ORB_SLAM2::MapPoint::UpdateNormalAndDepth </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Recalcula el vector normal y la profundidad de visibilidad a partir de las observaciones. </p>

</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="ac98d07dd8f7b70e16ccb9a01abf56b9c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">friend class boost::serialization::access</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ad3f5346f31d572dd2ab4fcd658de5bc4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="class_o_r_b___s_l_a_m2_1_1_serializer.html">Serializer</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="aa8f2fc3c4b67c04e97162a5084e1dada"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::MapPoint::mbBad</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Flag de borrado. </p>
<p>Los puntos eliminados no se quitan del vector, para evitar rearmar el vector. </p>

</div>
</div>
<a id="a0187350fa3fddd0bf89ccf354acb4766"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ORB_SLAM2::MapPoint::mbTrackInView</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ac2a05b8ddc806ecc6939f42d13828876"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">cv::Mat ORB_SLAM2::MapPoint::mDescriptor</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Mejor descriptor del punto. </p>

</div>
</div>
<a id="afc04bae1b7819dd158a572de56074f63"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float ORB_SLAM2::MapPoint::mfMaxDistance</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Distancia máxima en la que puede ser observado y reconocido por su descriptor. </p>

</div>
</div>
<a id="ac179383327d65067da6febe55cbfc32a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float ORB_SLAM2::MapPoint::mfMinDistance</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Distancia mínima en la que puede ser observado y reconocido por su descriptor. </p>

</div>
</div>
<a id="a58d0ed9067593833efa652ea671ebf62"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">mutex ORB_SLAM2::MapPoint::mGlobalMutex</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a3ab20d400977581ac45a109f5544ffda"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::mutex ORB_SLAM2::MapPoint::mMutexFeatures</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a592b97bed3453c0a599336fa848a8cef"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::mutex ORB_SLAM2::MapPoint::mMutexPos</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="abcef580d7b3562ea9025ea1dc2141b92"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long unsigned int ORB_SLAM2::MapPoint::mnBAGlobalForKF</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>RunBundleAdjustment lo asigna y luego lo consume. </p>

</div>
</div>
<a id="ad4da26d02aa54a3e0be6a09e90fa39ec"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long unsigned int ORB_SLAM2::MapPoint::mnBALocalForKF</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Variables efímeras usadas por <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a>. </p>
<p>Variables usadas por <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a>. </p>

</div>
</div>
<a id="a86626462be01ad9a133dca0f5b49e688"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long unsigned int ORB_SLAM2::MapPoint::mnCorrectedByKF</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Id del último keyframe que corrigió la posición del punto. </p>
<p>Inicializado en 0 en la construcción. Escrito por CorrectLoop, que luego invoca OptimizeEssentialGraph y lo lee. </p>

</div>
</div>
<a id="ade5858af14ed7924d48dbf191ea5448c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long unsigned int ORB_SLAM2::MapPoint::mnCorrectedReference</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a03c1f367dd43f384bcd066e9da65bb88"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long int ORB_SLAM2::MapPoint::mnFirstFrame</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Id del primer frame que observa este punto. </p>

</div>
</div>
<a id="ae20735198e68c7ed4c0f0956322c8f7a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long int ORB_SLAM2::MapPoint::mnFirstKFid</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Id del primer keyframe que observa este punto, cuyo valor es asignado en el constructor y nunca modificado. </p>
<p>Usualmente es el keyframe de referencia. En el raro caso en que se elimine el keyframe de referencia, la referencia cambia, pero se preserva este id.</p>
<p>Es utilizado solamente en <a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#acbbb8f04b15e3250e0e24070825d19ae" title="Elimina por varios motivos puntos recién agregados. ">LocalMapping::MapPointCulling</a> para evitar descartar puntos desde el keyframe que lo generó ni de los dos siguientes. </p>

</div>
</div>
<a id="a1defea85441b8063ef9ebb47c9959289"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ORB_SLAM2::MapPoint::mnFound</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Cantidad de veces que fue visible, y pudo ser detectado. </p>

</div>
</div>
<a id="aedba463c6440c2b448e9ec21acd58b9a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long unsigned int ORB_SLAM2::MapPoint::mnFuseCandidateForKF</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="afba2eb4d8400a0c822ee991ba445d9be"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long unsigned int ORB_SLAM2::MapPoint::mnId</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Identificador del punto. </p>
<p>Único para cada instancia. </p>

</div>
</div>
<a id="aea3a63ce27fc39e536a6ceef7c1f3473"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long unsigned int ORB_SLAM2::MapPoint::mnLastFrameSeen</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Registra el id del último frame que observó el punto. </p>
<p>Utilizada en <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html" title="Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). ">Tracking</a> sólo para distinguir si se está observando en el frame actual o no.</p>
<p>No es necesario serializar, el constructor lo inicializa en cero. </p>

</div>
</div>
<a id="a44172716cac5a56004a60d165de8cfa2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long unsigned int ORB_SLAM2::MapPoint::mnLoopPointForKF</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Variables efímeras usadas por <a class="el" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html" title="Cierre de bucles. ">LoopClosing</a>. </p>
<p>Variables usadas por <a class="el" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html" title="Cierre de bucles. ">LoopClosing</a>. </p>

</div>
</div>
<a id="aba0cff72e2182ff72d32edd77dc7832d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">cv::Mat ORB_SLAM2::MapPoint::mNormalVector</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Vector normal, computado como el promedio de las direcciones de todas las vistas del punto. </p>

</div>
</div>
<a id="a19152183cfddc71b63650175def6aec7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long unsigned int ORB_SLAM2::MapPoint::mnTrackReferenceForFrame</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Variable utilizada en <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a25843575116bf18c065d6cc7645f5b26" title="Rehace la lista de puntos del mapa local. ">Tracking::UpdateLocalPoints</a>. </p>
<p>Se inicializa en 0 en el constructor, y se escribe y lee sólo en <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html#a25843575116bf18c065d6cc7645f5b26" title="Rehace la lista de puntos del mapa local. ">Tracking::UpdateLocalPoints</a>. Luego de la carga se puede inicializar en cero. </p>

</div>
</div>
<a id="aac515bf003cea5f99737d13475c46816"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ORB_SLAM2::MapPoint::mnTrackScaleLevel</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="aadb2c83e36dc01e47983f57e831bac7b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ORB_SLAM2::MapPoint::mnVisible</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Cantidad de veces que el punto fue captado por la cámara, independientemente de si se lo detectó. </p>
<p>Es la cantidad de veces que "debería haber sido visto", según la pose de la cámara. </p>

</div>
</div>
<a id="a189bea541f860af75ceb60300b59d8e3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::map&lt;<a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a>*,size_t&gt; ORB_SLAM2::MapPoint::mObservations</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Keyframes que observan este punto, y sus índices. </p>
<p>El mapa tiene como índice punteros a keyframes que observan este punto. El dato secundario asociado al índice es el índice del vector <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html#a777aab9cb7c1fd8e83f143e77a9f1b03" title="Puntos del mapa asociado a los puntos singulares. ">KeyFrame::mvpMapPoints</a>, cuyo elemento es un puntero a este punto. </p>

</div>
</div>
<a id="aad9ad02a540966d12b75460238290d90"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map.html">Map</a>* ORB_SLAM2::MapPoint::mpMap</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Mapa al que pertenece. </p>
<p>Hay un único mapa, el mapa global. </p>

</div>
</div>
<a id="a2669d92452bb1347a6a09700e369f049"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::Mat ORB_SLAM2::MapPoint::mPosGBA</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a27cc4fee44b1ae77b24a8c766c617058"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a>* ORB_SLAM2::MapPoint::mpRefKF</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Keyframe de referencia. </p>
<p>Utilizado solamente para cerrar bucles. </p>

</div>
</div>
<a id="abf1fe1c8a41919e1890b70baa18bd2fb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html">MapPoint</a>* ORB_SLAM2::MapPoint::mpReplaced</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a7d735552c42630c00bca4c2094fbbbf3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float ORB_SLAM2::MapPoint::mTrackProjX</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Variables efímeras usadas por <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html" title="Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). ">Tracking</a>. </p>
<p>Varias se escriben solamente en Frame::IsInFrustum y se utiliza en OrbMatcher::SearchByProjectionVariables usadas por <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html" title="Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). ">Tracking</a>. </p>

</div>
</div>
<a id="a5ab59610931a5c2e14f502e8233571e4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float ORB_SLAM2::MapPoint::mTrackProjY</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a728107bc670ba47d79bad5ba288256d6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float ORB_SLAM2::MapPoint::mTrackViewCos</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Coseno de triangulación. </p>

</div>
</div>
<a id="a39741adada8dcd302afbf45ec2e72af0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">cv::Mat ORB_SLAM2::MapPoint::mWorldPos</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Posición en coordenadas absolutas del mapa global. </p>
<p>Mat de opencv. </p>

</div>
</div>
<a id="aa79702928d566db4fcd7716249bd96a2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long unsigned int ORB_SLAM2::MapPoint::nNextId =0</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Identificador para el próximo nuevo punto. </p>

</div>
</div>
<a id="a2653a4c69121627fcc5ae812b1809a28"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ORB_SLAM2::MapPoint::nObs</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Cantidad de veces que fue observado. </p>

</div>
</div>
<a id="a70f6cf86b42dfb6f4968839b977cd77f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::Vec3b ORB_SLAM2::MapPoint::rgb = 0</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/home/alejandro/Desarrollo eclipse/os1/include/<a class="el" href="_map_point_8h_source.html">MapPoint.h</a></li>
<li>/home/alejandro/Desarrollo eclipse/os1/src/<a class="el" href="_map_point_8cc.html">MapPoint.cc</a></li>
<li>/home/alejandro/Desarrollo eclipse/os1/src/<a class="el" href="_serializer_8cpp.html">Serializer.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespace_o_r_b___s_l_a_m2.html">ORB_SLAM2</a></li><li class="navelem"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html">MapPoint</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
  </ul>
</div>
</body>
</html>
